﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Bot.Domain.SessionChat
{
    public class SessionChatDto
    {
        public SessionChatDto()
        {
        }
        
        [Required]
        
        public Guid ID { get; set; }   
        
        [Required]
        
        public Guid SessionId { get; set; }   
        
        [Required]
        
        public Guid Operator1Id { get; set; }   
        
        [Required]
        
        public Guid Operator2Id { get; set; }   
        
        [Required]
        
        public Guid Operator3Id { get; set; }   
        
        [Required]
        
        public Guid Operator4Id { get; set; }   
        
        [Required]
        [MaxLength(512)]        
        public string OperatorComment { get; set; }   
        
        [Required]
        
        public DateTime StartTime { get; set; }   
        
        [Required]
        
        public DateTime EndTime { get; set; }   
        
        [Required]
        [MaxLength(1)]        
        public bool IfEnterQueue { get; set; }   
        
        [Required]
        [MaxLength(64)]        
        public string PreChatName { get; set; }   
        
        [Required]
        [MaxLength(64)]        
        public string PreChatCompany { get; set; }   
        
        [Required]
        [MaxLength(32)]        
        public string PreChatPhone { get; set; }   
        
        [Required]
        [MaxLength(64)]        
        public string PreChatEmail { get; set; }   
        
        [Required]
        [MaxLength(256)]        
        public string PreChatProductService { get; set; }   
        
        [Required]
        [MaxLength(64)]        
        public string PreChatSkillDepartment { get; set; }   
        
        [Required]
        [MaxLength(1)]        
        public bool IfVoiceChatHappened { get; set; }   
        
        [Required]
        [MaxLength(-1)]        
        public string ChatContent { get; set; }   
        
        [Required]
        
        public int Status { get; set; }   
        
        [Required]
        [MaxLength(-1)]        
        public string RequestingPageTile { get; set; }   
        
        [Required]
        [MaxLength(-1)]        
        public string RequestingPageUrl { get; set; }   
        
        [Required]
        
        public int Source { get; set; }                
        
        [Required]
        
        public Guid PreChatDepartment { get; set; }   
        
        [Required]
        
        public int RatingGrade { get; set; }   
        
        [Required]
        [MaxLength(-1)]        
        public string RatingComment { get; set; }   
        
        [Required]
        
        public DateTime RatingTime { get; set; }   
        
        [Required]
        
        public Guid CodePlanId { get; set; }   
        
        [Required]
        
        public DateTime RequestTime { get; set; }   
        
        [Required]
        
        public Guid OfflineMessageId { get; set; }   
        
        [Required]
        
        public double AvgResponseTime { get; set; }   
        
        [Required]
        
        public int VisitorMessagesNum { get; set; }   
        
        [Required]
        
        public int OperatorMessagesNum { get; set; }   
        
        [Required]
        
        public int SocialMediaSource { get; set; }   
        
        [Required]
        [MaxLength(2048)]        
        public string SocialProfileUrl { get; set; }   
        

        
        public int? LastMessageSentBy { get; set; }   
        

        
        public int? ChatType { get; set; }   
        

        [MaxLength(1)]        
        public bool IfVideoChatHappened { get; set; }
        public Guid? BotId { get; set; }   
        
    }
}
